home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 10
/
FM Towns Free Software Collection 10.iso
/
ms_dos
/
tool
/
expr
/
expr.doc
< prev
next >
Wrap
Text File
|
1995-02-04
|
8KB
|
244 lines
==============================================================================
式計算ユーティリティ Version 1.00a
for all MS-DOS Machines
Copyleft 1994 Delmonta
==============================================================================
第1章 はじめに
本ツールは、キーボードから入力した式を計算するものです。 C言語にほぼ準拠した
(ただし、かなり変更も加えています)種々の演算子や、変数も使用可能です。
本ツールは、 そもそも拙作ソフト「VenusScript」[*1]の一部として作られました。
従って、本ツールの仕様はVenusScriptの数式機能と完全な互換性があります。
note:
[*1] 旺文社・富士通主催「'95パソコンソフトコンテスト」入賞作品。 このマニュア
ルを書いている時点では未公開。
第2章 基本操作
2.1 動作環境
本ツールは、MS-DOS Ver2.1以上が動作するすべてのコンピュータで動作します。 動
作確認は、次の機種で行いました。
o 富士通 FM TOWNS II HR100 + FMT-KB107 + 日本語MS-DOS Ver5.0 L22
o NEC PC-9821Ce/S2 + 日本語MS-DOS Ver5.0A-H
2.2 起動と簡単な式の入力
本ツールの起動には、MS-DOSのコマンドラインから次のように入力します。
expr<改行>
プロンプト「>」が表示されますので、 式を入力し、<改行>キーを押してください。
計算結果が表示されます。
(例) 3+4*5
表示:23
終了したい場合は、プロンプトが出ている段階で改行のみを入力してください。
2.3 16進数の利用
本ソフトでは、 数の先頭に「0x」をつけると、 16進数として扱われます。 なお、
「0123」のように0から始まる場合でも、8進数ではありませんので注意してください。
2.4 変数
本ソフトでは、変数を使用することができます。変数名は、 英字のあとに0個以上の
英数字のついたものです。 なお、アンダーバー('_')は英字と同等に扱います。また、
英字の大文字と小文字は区別されません。
変数に値を代入するには、「=」という演算子を使います。
(例)
入力: a=3
表示: 3
入力: a/4
表示: 0.75
代入式の後に表示された「3」は、変数aに代入された値を示しています。詳細は次章
を参照してください。
なお、値を設定していない変数を参照した場合は、その値は0とみなされます。
第3章 演算子の種類と優先順位
式で使用できる演算子は、ほぼC言語に準拠しています。しかし、一部にC言語以外か
ら借用したものや、C言語と微妙に動作の違うものがあります。
3.1 括弧
演算子の優先順位を強制的に変えたい場合は、'('と')'を使います。重ねて使うこと
もできます。
3.2 四則演算と余り
+と-は、加減算を表します。*は乗算を、/は除算を表します。
a%b は、aをbで割った余りを表します。aとbの片方または両方が負の場合は、結果の
符号はaの符号と一致します。
3.3 符号
+、-は、正負の符号を表します。
+や-は、文脈によって、3.2の加減算の意味にもなります。
3.4 累乗
a**b は、aのb乗を表します。bは任意の実数であってかまいません。
a=0のときはb>0、a<0のときはbは整数でなければいけません。
**は符号より優先順位が高いので注意してください。例えば、 -3の6乗を求めたい場
合は、(-3)**6 とする必要があります。-3**6 とした場合は、-(3**6) と解釈されてし
まいます。
[注意]
**は、Fortran言語に由来しています。BASIC風に a^b と書くことはできません(別の意
味になります)。
3.5 比較
比較演算子は、左辺と右辺を比較して、それが真ならば1に、偽なら0になります。比
較演算子には、つぎのものがあります。
+-------------------------------+
| a>b |aがbより大きい |
|-----+-------------------------|
| a<b |aがbより小さい |
|-----+-------------------------|
| a>=b|aがb以上 |
|-----+-------------------------|
| a<=b|aがb以下 |
|-----+-------------------------|
| a==b|aとbが等しい |
|-----+-------------------------|
| a!=b|aとbとが等しくない |
+-------------------------------+
[注意]
>=を=>、<=を=<と書くことはできません。また、aとbの相等は a==b であって、a=b で
はありません。後者はbをaに代入する意味になります。
3.6 シフト
a<<b はaをbビット左にシフトします。a*2**b と等価です。
a>>b はaをbビット右にシフトします。a*2**-b と等価です。
3.7 否定
!a は、a=0なら1に、a≠0なら0になります。
~a は、aをビットごとに反転します。つまり、aを2進法で表記して、各桁について0
なら1に、1なら0にします。
3.8 論理積・論理和・排他的論理和
a&&b は、a≠0かつb≠0のとき1に、それ以外のとき0になります。a||b は、a≠0また
はb≠0のとき1に、それ以外のとき0になります。
a&b は、aとbのビットごとの論理積をとります。a|b は、aとbのビットごとの論理和
をとります。これらと&&、||との違いに注意してください。
a^b は、 aとbのビットごとの排他的論理和をとります。 累乗の意味ではありません
(→3.4 )。
3.9 変数と代入
式には、 変数を使用することができます。変数名は英字または'_'ではじまります。
その後に英数字や'_'がついてもかまいません。
変数に値を代入するには、=という演算子を使います。 a=bで、 変数aに式bの値がコ
ピーされます。
また、 a=b という式の「値」は、 結果的にaに代入された値です。従って、例えば
(a=4)+3 とするのは、先に a=4 としてから a+3 とするのと同じで、 値は7になりま
す。
C言語のa+=bのような構文は使用できません。
[注意]
a=b は、aとbとの相等を表すわけではありません。
3.10 演算子の優先順位
すべての演算子の優先順位の表を、次に示します。下にいくほど優先順位が低くなり
ます。
結合順序の項目で「単項」とは、 符号のようにただ1つの被演算数を要求するもの
で、○を演算子とすると、○aのような構文をとるものです。○☆aとした場合は、○と
☆の優先順位の大小に関わらず ○(☆a) と解釈されます。
「左結合」とは、a○b○c という式があった場合に、(a○b)○c と解釈されるものの
ことです。四則演算などがこれにあたります。
「右結合」とは、a○b○c という式があった場合に、a○(b○c) と解釈されるものの
ことです。累乗と代入がこれにあたります。
+---------------------------+
| 演算子 |結合順序|
|------------------+--------|
| ( ) | --- |
|------------------+--------|
| ! ~ | 単項 |
|------------------+--------|
| ** | 右結合 |
|------------------+--------|
| + -(符号) | 単項 |
|------------------+--------|
| * / % | 左結合 |
|------------------+--------|
| << >> | 左結合 |
|------------------+--------|
| + -(加減算) | 左結合 |
|------------------+--------|
| & | ^ | 左結合 |
|------------------+--------|
| < > <= >= == != | 左結合 |
|------------------+--------|
| = | 右結合 |
|------------------+--------|
| && || | 左結合 |
+---------------------------+
3.11 C言語との違い
o <、>、<=、>=と==、!=の優先順位は同等です。
o 比較(==、!=、<、>、<=、>=)の優先順位は、ビット演算(&、|、^)より低くなっ
ています。
o 代入(=)の優先順位は、2値演算(&&、||)より高くなっています。
o 2値演算(&&、||)は、左の値だけで結果が決まってしまう場合でも、右の式を評
価します。例えば、a && (b=2) の場合、たとえaが0であってもbには2が代入さ
れます。
追記 A 最後に
A.1 パッケージの内容
本ソフトのオリジナルパッケージには、次のファイルが含まれています。
+-------------------------------------------------+
|EXPR.EXE|実行プログラム |
|--------+----------------------------------------|
|EXPR.DOC|ドキュメント(このファイル) |
|--------+----------------------------------------|
|EXPR.C |ソースプログラム |
+-------------------------------------------------+
A.2 著作権等について
作者(Delmontaこと飯嶋浩光)は、 本ソフトについての著作者人格権ならびに著作権
(著作者財産権)を保有しますが、著作権の行使については保留します。すなわち、利用
者は営利利用の場合を含め、本ソフトを自由に使用することができます。
また、 本ソフトのソースプログラムは、 自由に他のソフトに組み込んでかまいませ
ん。 また、 その場合、たとえ営利利用の場合であっても、連絡等は特に必要ありませ
ん。
A.3 連絡先
本ソフトについてのご意見、ご感想は次の宛先までお願いします。
314 茨城県鹿島郡鹿島町鉢形台3-9-13
飯嶋 浩光